package comandos;

import model.Usuario;
import protocol.MensajeComando;
import server.ClienteHilo;
import server.Servidor;
import server.dao.UsuarioDAO;
public class LoginUsuario implements ComandoServidor {

	public void ejecutar(ClienteHilo cliente) {

		try {
			// Recibo el usuario que se va a loguear
			Usuario u = (Usuario) cliente.getInput().readObject();

			if (!Servidor.isConectado(u)) {

				UsuarioDAO user = new UsuarioDAO();
				Usuario uLogueado = user.login(u.getNick(), u.getPassword());
				
				if (uLogueado.getId() != -1) {
					System.out.println("Login - <" + uLogueado.getNick()+ "> inicio sesion");
					cliente.getOutput().writeObject(new MensajeComando("Login exitoso", 1));
					cliente.getOutput().flush();
					cliente.getOutput().writeObject(uLogueado);
					cliente.getOutput().flush();
					cliente.setUsuario(uLogueado);
					Servidor.addUsuarioConectado(uLogueado, cliente);
				} else {
					System.out.println("Login - <" + u.getNick()+ "> ingreso una password incorrecta");
					cliente.getOutput().writeObject(new MensajeComando("Usuario o password incorrecto",0));
					cliente.getOutput().flush();
				}

			} else {
				cliente.getOutput().writeObject(new MensajeComando("El usuario se encuentra logueado",0));
				cliente.getOutput().flush();
			}

		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("Problema al ejecutar el comando");
		}

	}

}
